package com.pipayshop.domain;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

/**
* 网店商品表
* @TableName shop_commodity_info
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("shop_commodity_info")
public class ShopCommodity implements Serializable {

    /**
     * 自增id
     */
    @NotNull(message = "[自增id]不能为空")
    @ApiModelProperty("自增id")
    private Integer id;
    /**
     * 网店商品id
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("网店商品id")
    @Length(max = 255, message = "编码长度不能超过255")
    @NotNull(message = "[网店商品id]不能为空")
    private String commodityId;
    /**
     * 网店商品原价
     */
    @ApiModelProperty("网店商品原价")
    private BigDecimal originPrice;
    /**
     * 网店商品现价
     */
    @NotNull(message = "[网店商品现价]不能为空")
    @ApiModelProperty("网店商品现价")
    private BigDecimal price;
    /**
     * 网店商品名称
     */
    @NotBlank(message = "[网店商品名称]不能为空")
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("网店商品名称")
    @Length(max = 255, message = "编码长度不能超过255")
    private String commodityName;
    /**
     * 上架时间
     */
    @NotNull(message = "[上架时间]不能为空")
    @ApiModelProperty("上架时间")
    private Date createTime;
    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private Date updateTime;
    /**
     * 下架时间
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("下架时间")
    @Length(max = 255, message = "编码长度不能超过255")
    private String deleteTime;
    /**
     * 发货人的电话
     */
    @NotBlank(message = "[发货人的电话]不能为空")
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("发货人的电话")
    @Length(max = 255, message = "编码长度不能超过255")
    private String originPhone;
    /**
     * 发货人的姓名
     */
    @NotBlank(message = "[发货人的姓名]不能为空")
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("发货人的姓名")
    @Length(max = 255, message = "编码长度不能超过255")
    private String originName;
    /**
     * 发货地
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("发货地")
    @Length(max = 255, message = "编码长度不能超过255")
    private String originAddress;
    /**
     * 支持发货的地区集合
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("支持发货的地区集合")
    @Length(max = 255, message = "编码长度不能超过255")
    private String acceptAddressList;
    /**
     * 网店id
     */
    @NotBlank(message = "[网店id]不能为空")
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("网店id")
    @Length(max = 255, message = "编码长度不能超过255")
    private String ShopId;
    /**
     * 网店商品介绍
     */
    @NotBlank(message = "[网店商品介绍]不能为空")
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("网店商品介绍")
    @Length(max = 255, message = "编码长度不能超过255")
    private String details;
    /**
     * 网店商品图片的地址集合
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("网店商品图片的地址集合")
    @Length(max = 255, message = "编码长度不能超过255")
    private String imagsList;
    @TableField(exist = false)
    private String imagsListCode;
    /**
     * 网店商品详情图片的地址集合
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("网店商品详情图片的地址集合")
    @Length(max = 255, message = "编码长度不能超过255")
    private String detailImages;

    @TableField(exist = false)
    private String detailImagesCode;
    /**
     * 库存
     */
    @ApiModelProperty("库存")
    private Integer inventory;
    /**
     * 免运费的起始订购数量
     */
    @ApiModelProperty("免运费的起始订购数量")
    private Integer freeShippingNum;
    /**
     * 网店商品类别
     */
    @ApiModelProperty("网店商品类别")
    private Integer categoryId;
    @TableField(exist = false)
    private Integer categoryPid;
    /**
     * 优惠券的集合
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("优惠券的集合")
    @Length(max = 255, message = "编码长度不能超过255")
    private String couponsList;
    /**
     * 商品的标签id集合
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("商品的标签id集合")
    @Length(max = 255, message = "编码长度不能超过255")
    private String tagList;
    /**
     * 商品的折损（枚举）
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("商品的折损（枚举）")
    @Length(max = 255, message = "编码长度不能超过255")
    private Integer degreeLoss;
    /**
     * 0：上架 1：下架 2：审核中
     */
    @NotNull(message = "[0：上架 1：下架 2：审核中]不能为空")
    @ApiModelProperty("0：上架 1：下架 2：审核中")
    private Integer status;
    /**
     * pi币余额
     */
    @ApiModelProperty("pi比钱包地址")
    private BigDecimal piBalance;
    /**
     * pi比钱包地址
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("商品详情信息图集合")
    @Length(max = 255, message = "编码长度不能超过255")
    private String piAddress;

    /**
     *商品展示主图
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("商品展示主图")
    @Length(max = 255, message = "编码长度不能超过255")
    private String avatarImg;


    /**
     *商品销量
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("商品销量")
    @Length(max = 255, message = "编码长度不能超过255")
    private Integer sales;

    private String specification;
}